查看原文
其他

Apache Hudi 0.8.0版本重磅发布

hudi ApacheHudi 2022-04-23


1. 重点特性

1.1 Flink集成

自从Hudi 0.7.0版本支持Flink写入后,Hudi社区又进一步完善了Flink和Hudi的集成。包括重新设计性能更好、扩展性更好、基于Flink状态索引的写入Pipeline;支持Flink写入MOR表;Flink批量读取COW和MOR表;流式读取MOR表;同时支持了Hudi作为Source和Sink的Flink SQL Connector,在Hudi 0.8.0版本发布后,用户可以使用Flink1.11+体验上述所有新特性。

想了解更多Flink写入Hudi的细节,请参考 RFC-24[1]

具体教程可参考:重磅!解锁Apache Flink读写Apache Hudi新姿势

1.2 并发写

单表支持并发写特性在Hudi社区呼声比较高,0.8.0版本Hudi使用乐观锁并发控制支持多客户端并发写同一张表,Hudi支持文件级别乐观锁并发控制,如两个commit(或写入客户端)同时写入一张表,如果两个commit修改的文件不相同,两个客户端的写入都可以成功,现在这个功能标记为experimental,用户可以基于ZookeeperHiveMetastore来提供锁服务,后续还会考虑提供基于文件的锁服务。

想了解更多并发写入细节,请参考RFC-22[2],想使用并发写功能,可参考并发控制[3]配置。

1.3 写入端改进

•Flink客户端支持InsertOverwrite•Java客户端支持COW表

1.4 查询端改进

•支持Spark Structured Streaming流式读取Hudi表•改进Metadata Table的性能•改进Clustering的性能

2. 迁移指南

•如果从小于0.5.3版本迁移,请参考每个版本迁移指南•0.6.0版本之后未引入新的表版本HoodieRecordPayload接口被标记为deprecated,重新引入了包含properties参数的接口,欢迎迁移至新接口,老接口将在0.9.0版本移除,请尽快迁移。

3. 总结

0.8.0版本与Flink做了更深度的集成,借助Flink和Hudi构建更实时的数据湖,同时0.8.0版本还支持了Flink和Spark的流批读写,Hudi可作为流批一体的统一数据存储层。

4. 感谢

感谢参与0.8.0版本的所有贡献者,欢迎广大数据湖爱好者加入Apache Hudi社区,欢迎star & fork https://github.com/apache/hudi

源码下载

•源码下载 : Apache Hudi 0.8.0 Source Release[4] (asc[5], sha512[6])•maven仓库包地址: 地址[7]

推荐阅读

一文彻底掌握Apache Hudi的主键和分区配置

Apache Flink 1.12.2集成Hudi 0.9.0运行指南

Lakehouse元数据管理技术深度解析

干货!Apache Hudi如何智能处理小文件问题

重磅!解锁Apache Flink读写Apache Hudi新姿势


引用链接

[1] RFC-24: https://cwiki.apache.org/confluence/display/HUDI/RFC+-+24%3A+Hoodie+Flink+Writer+Proposal
[2] RFC-22: https://cwiki.apache.org/confluence/display/HUDI/RFC+-+22+%3A+Snapshot+Isolation+using+Optimistic+Concurrency+Control+for+multi-writers
[3] 并发控制: http://hudi.apache.org/docs/concurrency_control.html
[4] Apache Hudi 0.8.0 Source Release: https://downloads.apache.org/hudi/0.8.0/hudi-0.8.0.src.tgz
[5] asc: https://downloads.apache.org/hudi/0.8.0/hudi-0.8.0.src.tgz.asc
[6] sha512: https://downloads.apache.org/hudi/0.8.0/hudi-0.8.0.src.tgz.sha512
[7] 地址: https://repository.apache.org/#nexus-search;quick~hudi

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存